1. Field of the Invention
This invention relates generally to data communications. In particular, the present invention relates to methods of controlling the admission of a plurality of data communications on a peripheral bus for a computing device having a finite bandwidth.
2. Description of the Related Art
Communication links, such as peripheral buses in a network, can transfer data for a plurality of different computing devices, software applications and other resources resident on the network. The data from a computing device, application or other resource can be transferred over a peripheral bus using a Class of Service (CoS) or other method which provides timeline, maximum error rate or other Quality of Service (QoS) guarantees. Some transfer classes reserve and pre-allocate part of the bandwidth of the peripheral bus in advance for continuous and constant guaranteed availability to the resource. (Although the peripheral bus may be any kind of a cable, fiber optic, wired connection or wireless connection, the term xe2x80x9cbandwidthxe2x80x9d is nevertheless used herein to refer to the amount of data which can be transferred per unit of time, typically in bits per second (b/s) or bytes per second (B/s), and does not refer to the frequency range over which the peripheral bus transfers data.)
However, resources requesting guaranteed bandwidth do not always use all of the bandwidth they request for various reasons. For example, the amount of bandwidth requested is usually that amount which is sufficient to handle the worst case scenario (typically the expected peak data transfer rate). For example, a multimedia application receiving data through a digital subscriber line (DSL) controller might request 50% of a approximately 1.5 mbps throughput rate as a worst case scenario, where the best scenario scenario might be 25% of the throughput rate. Devices, application and resources do not always receive data at the maximum possible rate and therefore the average data transfer rate is often less than the peak data transfer rate. Also, the nature of some resources may require varying degrees of encoding/compression of data and thus cause the actual data transfer rate to vary substantially from the average data transfer rate. This is especially true of devices, such as video cameras, and applications, such as multimedia content player, which utilize real-time adaptive compression or decompression algorithms. This is a problem for communication systems which do not allow variable bit rate transfers. The reserved bandwidth pre-allocated to the device, application or resource will frequently go unused and wasted. The proportion of wasted bandwidth may very well increase significantly if the amount of bandwidth reserved by one or more devices, applications or resources increases and/or if the amount of bandwidth on the peripheral bus increases.
Furthermore, in some computer systems and networks, the devices, applications and resources are merely expected to be xe2x80x9cgood citizensxe2x80x9d which will request only as much bandwidth as they will need and allow as much bandwidth as possible to remain to be used by other devices, applications or resources. See, for example, xe2x80x9cAn Analysis of Throughput Characteristics of Universal Serial Busxe2x80x9d by John Garney, Intel Corporation, Dec. 6, 1996. Such a computer system or network may not have any protections against faulty or rogue devices, applications or resources which inappropriately reserve bandwidth or reserve an inordinately large fraction of bandwidth. Therefore, the bandwidth on a peripheral bus may be hoarded by a resource or otherwise under-utilized.